import matplotlib.pyplot as plt
import numpy as np


# 绘制单个向量
def plot_single_vector():
    # 定义向量的起点和终点
    # origin = [0], [0]
    # vector = [3], [4]
    origin = [0, 0]
    vector = [3, 4]

    # 创建绘图
    plt.figure()
    plt.quiver(*origin, *vector, angles="xy", scale_units="xy", scale=1)

    # 设置坐标轴范围
    plt.xlim(-1, 5)
    plt.ylim(-1, 5)

    # 设置坐标轴标签和标题
    plt.xlabel("X")
    plt.ylabel("Y")
    plt.title("Single 2D Vector")

    # 显示网格线
    plt.grid(True)
    plt.show()


# 绘制多个向量
def plot_multiple_vectors():
    # 定义多个向量的起点和终点
    vectors = np.array([[1, 1], [2, 2], [-1, 3]])
    origins = np.zeros((len(vectors), 2))

    # 创建绘图
    plt.figure()
    plt.quiver(*origins.T, *vectors.T, angles="xy", scale_units="xy", scale=1)

    # 设置坐标轴范围
    plt.xlim(-2, 3)
    plt.ylim(-1, 4)

    # 设置坐标轴标签和标题
    plt.xlabel("X")
    plt.ylabel("Y")
    plt.title("Multiple 2D Vectors")

    # 显示网格线
    plt.grid(True)
    plt.show()


if __name__ == "__main__":
    # 调用函数进行绘图
    plot_single_vector()
    # 绘制多个向量
    plot_multiple_vectors()
